#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

int main()
{
    printf("父进程开始运行，pid：%d\n", getpid());

    pid_t id = fork();
    if(id < 0)
    {
        perror("fork");
        return 1;
    }
    else if(id == 0)
    {
        // child
        while(1)
        {
            printf("我是一个子进程！我的 pid 为：%d，", getpid());
            printf("我的父进程 id 为：%d\n", getppid());
            sleep(1);
        }
    }
    else 
    {
        // father
        while(1)
        {
            printf("我是一个父进程！我的 pid 为：%d，", getpid());
            printf("我的父进程 id 为：%d\n", getppid());
            sleep(1);
        }
    }
    printf("fork()函数返回值：%d\n", id);

    printf("进程开始运行，pid：%d\n", getpid());

    return 0;
}
